package org.jeecg.modules.zonglzp.mapper;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.zonglzp.entity.AfterOrderEntity;
import org.jeecg.modules.zonglzp.entity.TeamAfterEntity;
import org.jeecg.modules.zonglzp.entity.teamAfteronepersonEntity;
import org.jeecg.modules.zonglzp.entity.trackAfterEntity;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public interface orderAfterMapper {

    //查询售后
    IPage<AfterOrderEntity> getlist(Page<AfterOrderEntity> page, @Param("userId") String userId, @Param("ordertype") int ordertype);


    //查询面料售后
    IPage<AfterOrderEntity> mianliaoshouhouList(Page<AfterOrderEntity> page, @Param("userId") String userId, @Param("ordertype") int ordertype, @Param("orderSn") String orderSn, @Param("starttime") String starttime, @Param("endtime") String endtime,@Param("orgCode") String orgCode);


    //个订售后查询
    IPage<AfterOrderEntity> gedingshouhoulist(Page<AfterOrderEntity> page, @Param("userId") String userId, @Param("ordertype") int ordertype, @Param("orderSn") String orderSn, @Param("starttime") String starttime, @Param("endtime") String endtime,@Param("orgCode") String orgCode);


    //团订售后查询
    IPage<AfterOrderEntity> tuandingshouhoulist(Page<AfterOrderEntity> page, @Param("userId") String userId, @Param("ordertype") int ordertype, @Param("orderSn") String orderSn, @Param("starttime") String starttime, @Param("endtime") String endtime,@Param("orgCode")  String orgCode);


    //查询某个售后的详情
    AfterOrderEntity getorderatferdetail(@Param("id") int id);


    //查询某个售后订单的跟踪记录
    List<trackAfterEntity> getAftertrack(@Param("afterOrderId") String afterOrderId);

    //通过第一个购物车Id查询面料的信息
    HashMap<String, Object> getfirstmianliao(@Param("s") String s);

    //根据操作ID去获取这个发货操作的订单号
    HashMap<String, Object> getyundanbycaozuoId(@Param("id") String id);

    //往快递表里插入一条数据
    void addkuaidi(@Param("courierNumber") String courierNumber, @Param("courierName") String courierName, @Param("date") Date date);

    //在快递表中通过运单号查询快递Id
    int getkuaiIdbycourierNumber(@Param("courierNumber") String courierNumber);

    //将快递id修改进售后订单跟踪表中
    void updatetrackupdatxekuaidi(@Param("kuaidiId") int kuaidiId, @Param("aftertrackId") String aftertrackId, @Param("courierNumber")  String courierNumber);

    void insertmlccTrackAfterOrder(@Param("afterId") int afterId, @Param("ordertype") int ordertype, @Param("date") Date date, @Param("status") int status, @Param("kuaidiId") int kuaidiId, @Param("id") long id, @Param("courierNumber") String courierNumber);

    //先查询该运单号是否已经插入快递表
    String getcunzaibycourierNumber(@Param("courierNumber") String courierNumber);

    //团订售后中，查询该订单需要进行售后的人员列表
    IPage<AfterOrderEntity> getteamafterpeople(Page<TeamAfterEntity> page, @Param("orderafterId") int orderafterId);

    //查询团订售后中人员返修参数
    List<teamAfteronepersonEntity> getfanxiuParameter(@Param("afterCode") String afterCode, @Param("customerId") String customerId, @Param("isAfter") int isAfter);

    //查询团订售后中人员重做参数
    List<teamAfteronepersonEntity> chongzuoParameter(@Param("afterCode") String afterCode, @Param("customerId") String customerId, @Param("isAfter") int isAfter,@Param("smallId") String smallId);

    //查询这次团订售后中  这个人原因和产品名字
    teamAfteronepersonEntity getReasonName(@Param("afterCode") String afterCode, @Param("customerId") String customerId, @Param("code") String code);

    //查询个订售后中
    List<Map<String, Object>> getSingleOrdercanshu(@Param("id") int id,@Param("productId") String productId);


    //通过售后订单id查询产品名字
    String getsingleafterproductName(@Param("id") int id);

    //团订售后每个售后跟踪记录的那批人
    IPage<TeamAfterEntity> getteamaftertrackpeoplegroup(Page<TeamAfterEntity> page, @Param("id") String id);


    //查询某个小产品的批次信息
    Map<String, Object> getonetrackafterorderpersonpici(@Param("id") int id);

    //如果是团订 需要把人员转移到售后跟踪记录id中
    void yidonggourpOrderPersonToNewTrack(@Param("aftertrackId") String aftertrackId,@Param("id") long id);

    //通过售后订单id查询售后订单类型
    int getafterordertypebyid(@Param("parseInt")  int parseInt);

    //通过售后订单id查询面料编号
    String getFabricNumberbyafterId(@Param("id") int id);

    //通过token查询权限代码
    String getuserorgCode(@Param("token") String token);

    //通过小产品编号查询小产品Id
    String getsmallId(@Param("code") String code);
}
